
/* Copyright ©, 2022, ECARX (Hubei) Technology Co., Ltd. All rights reserved.
 *
 * NOTICE: This file contains information which is confidential and proprietary to ECARX
 * (Hubei) Technology Co., Ltd. and/or other developers. No license to any intellectual
 * property rights contained within this file is either granted or implied except as may be
 * provided in an agreement with ECARX (Hubei) Technology Co., Ltd.
 *
 * Any unauthorized copying or distribution of content from this file in whole or in part
 * is prohibited.
 */
#ifndef ECARX_VEHCILE_HAL_IMPL_H_
#define ECARX_VEHCILE_HAL_IMPL_H_

#include <vhal_v2_0/VehicleHalManager.h>

#include "IVendorVehicleServer.h"

namespace ecarx::vhal::impl {
using VehicleHalManager = android::hardware::automotive::vehicle::V2_0::VehicleHalManager;
class VehicleHal {
    class VehicleHalImpl;
    VehicleHalImpl* mImpl;

  public:
    explicit VehicleHal(::ecarx::vhal::core::interface::IVendorVehicleServer* server);
    ~VehicleHal();
    std::unique_ptr<VehicleHalManager> createVhalManager();
};

}  // namespace ecarx::vhal::impl

#endif
